package com.cskaoyan.bean.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author ：dailin
 * @date ：
 * @description：
 */
@NoArgsConstructor
@Data
public class OrderDetailDearling {


    @JsonProperty("orderInfo")
    private OrderInfoDTO orderInfo;
    @JsonProperty("orderGoods")
    private List<OrderGoodsDTO> orderGoods;
    @JsonProperty("expressInfo")
    OrderDetailingExpressVo expressInfo;
    @NoArgsConstructor
    @Data
    public static class OrderInfoDTO {
        @JsonProperty("consignee")
        private String consignee;
        @JsonProperty("address")
        private String address;
        @JsonProperty("addTime")
        private Date addTime;
        @JsonProperty("orderSn")
        private String orderSn;
        @JsonProperty("actualPrice")
        private BigDecimal actualPrice;
        @JsonProperty("mobile")
        private String mobile;
        @JsonProperty("orderStatusText")
        private String orderStatusText;
        @JsonProperty("goodsPrice")
        private BigDecimal goodsPrice;
        @JsonProperty("couponPrice")
        private BigDecimal couponPrice;
        @JsonProperty("id")
        private Integer id;
        @JsonProperty("freightPrice")
        private BigDecimal freightPrice;
        @JsonProperty("handleOption")
        private HandleOptionDTO handleOption;

        @NoArgsConstructor
        @Data
        public static class HandleOptionDTO {
            @JsonProperty("cancel")
            private Boolean cancel;
            @JsonProperty("delete")
            private Boolean delete;
            @JsonProperty("pay")
            private Boolean pay;
            @JsonProperty("comment")
            private Boolean comment;
            @JsonProperty("confirm")
            private Boolean confirm;
            @JsonProperty("refund")
            private Boolean refund;
            @JsonProperty("rebuy")
            private Boolean rebuy;
        }
    }

    @NoArgsConstructor
    @Data
    public static class OrderGoodsDTO {
        @JsonProperty("id")
        private Integer id;
        @JsonProperty("orderId")
        private Integer orderId;
        @JsonProperty("goodsId")
        private Integer goodsId;
        @JsonProperty("goodsName")
        private String goodsName;
        @JsonProperty("goodsSn")
        private String goodsSn;
        @JsonProperty("productId")
        private Integer productId;
        @JsonProperty("number")
        private Integer number;
        @JsonProperty("price")
        private BigDecimal price;
        @JsonProperty("specifications")
        private List<String> specifications;
        @JsonProperty("picUrl")
        private String picUrl;
        @JsonProperty("comment")
        private Integer comment;
        @JsonProperty("addTime")
        private Date addTime;
        @JsonProperty("updateTime")
        private String updateTime;
        @JsonProperty("deleted")
        private Boolean deleted;
    }
}
